/*
 * (C) Copyright 2016 Fuzhou Rockchip Electronics Co., Ltd
 * William Zhang, SoftWare Engineering, <william.zhang@rock-chips.com>.
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#ifndef __RK322XH_IO_H
#define __RK322XH_IO_H


/* rk io map base start */
#define RKIO_IOMEMORYMAP_START          0xFF000000

/*
 * RK322XH IO memory map:
 *
 */
#define	RKIO_I2S0_8CH_PHYS		0xFF000000
#define	RKIO_I2S1_8CH_PHYS		0xFF010000
#define	RKIO_I2S2_2CH_PHYS		0xFF020000
#define	RKIO_SPDIF_PHYS			0xFF030000
#define	RKIO_PDM_PHYS			0xFF040000
#define	RKIO_TSP_PHYS			0xFF050000
#define	RKIO_CRYPTO_PHYS		0xFF060000
#define	RKIO_ROM_PHYS			0xFF080000
#define	RKIO_IMEM_PHYS			0xFF090000
#define	RKIO_OTP_S_PHYS			0xFF0A0000
#define	RKIO_EFUSE_S_PHYS		0xFF0B0000
#define	RKIO_SECURITY_DMAC_BUS_PHYS	0xFF0C0000
#define	RKIO_SECURE_GRF_PHYS		0xFF0D0000

#define	RKIO_GRF_PHYS			0xFF100000
#define	RKIO_UART0_PHYS			0xFF110000
#define	RKIO_UART1_PHYS			0xFF120000
#define	RKIO_UART2_PHYS			0xFF130000
#define	RKIO_PMU_PHYS			0xFF140000
#define	RKIO_I2C0_PHYS			0xFF150000
#define	RKIO_I2C1_PHYS			0xFF160000
#define	RKIO_I2C2_PHYS			0xFF170000
#define	RKIO_I2C3_PHYS			0xFF180000
#define	RKIO_SPI_PHYS			0xFF190000
#define	RKIO_WDT_PHYS			0xFF1A0000
#define	RKIO_PWM_PHYS			0xFF1B0000
#define	RKIO_TIMER0_6CH_PHYS		0xFF1C0000
#define	RKIO_SECURE_TIMER_2CH_PHYS	0xFF1D0000
#define	RKIO_DCF_PHYS			0xFF1E0000
#define	RKIO_DMAC_BUS_PHYS		0xFF1F0000

#define	RKIO_SIM_PHYS			0xFF200000
#define	RKIO_GPIO0_PHYS			0xFF210000
#define	RKIO_GPIO1_PHYS			0xFF220000
#define	RKIO_GPIO2_PHYS			0xFF230000
#define	RKIO_GPIO3_PHYS			0xFF240000
#define	RKIO_TSADC_PHYS			0xFF250000
#define	RKIO_EFUSE_NS_PHYS		0xFF260000
#define	RKIO_OTP_NS_PHYS		0xFF270000
#define	RKIO_SARADC_PHYS		0xFF280000

#define	RKIO_GPU_PHYS			0xFF300000
#define	RKIO_H265_ENC_PHYS		0xFF330000
#define	RKIO_H264_ENC_PHYS		0xFF340000
#define	RKIO_VPU_PHYS			0xFF350000
#define	RKIO_RKVDEC_PHYS		0xFF360000
#define	RKIO_VOP_PHYS			0xFF370000
#define	RKIO_VIP_PHYS			0xFF380000
#define	RKIO_RGA_PHYS			0xFF390000
#define	RKIO_IEP_PHYS			0xFF3A0000
#define	RKIO_HDCP_MMU_PHYS		0xFF3B0000
#define	RKIO_HDMI_PHYS			0xFF3C0000
#define	RKIO_HDCP2_2_PHYS		0xFF3E0000

#define	RKIO_DDRPHY_PHYS		0xFF400000
#define	RKIO_ACODECPHY_PHYS		0xFF410000
#define	RKIO_VDACPHY_PHYS		0xFF420000
#define	RKIO_HDMIPHY_PHYS		0xFF430000
#define	RKIO_CRU_PHYS			0xFF440000
#define	RKIO_USB2PHY_GRF_PHYS		0xFF450000
#define	RKIO_USB3PHY_GRF_PHYS		0xFF460000
#define	RKIO_USB3PHY_PIPE_APB_PHYS	0xFF470000
#define	RKIO_USB3PHY_UTMI_APB_PHYS	0xFF480000

#define	RKIO_SDMMC_PHYS			0xFF500000
#define	RKIO_SDIO_PHYS			0xFF510000
#define	RKIO_EMMC_PHYS			0xFF520000
#define	RKIO_GMAC0_PHYS			0xFF540000
#define	RKIO_GMAC1_PHYS			0xFF550000
#define	RKIO_USB2_OTG_PHYS		0xFF580000
#define	RKIO_USB_HOST_EHCI_PHYS		0xFF5C0000
#define	RKIO_USB_HOST_OHCI_PHYS		0xFF5D0000
#define	RKIO_SDMMC_EXT_PHYS		0xFF5F0000

#define	RKIO_USB3_OTG_PHYS		0xFF600000

#define	RKIO_SERVICE_CORE_PHYS		0xFF700000
#define	RKIO_SERVICE_GPU_PHYS		0xFF710000
#define	RKIO_SERVICE_MSCH_PHYS		0xFF720000
#define	RKIO_SERVICE_PERI_PHYS		0xFF730000
#define	RKIO_SERVICE_SYS_PHYS		0xFF740000
#define	RKIO_SERVICE_VDEC_PHYS		0xFF750000
#define	RKIO_SERVICE_VIO_PHYS		0xFF760000

#define	RKIO_DDR_UPCTL_PHYS		0xFF780000
#define	RKIO_DDR_MONITOR_PHYS		0xFF790000
#define	RKIO_DDR_STDBY_PHYS		0xFF794000
#define	RKIO_DDR_GRF_PHYS		0xFF798000

#define	RKIO_FIREWALL_DDR_PHYS		0xFF7C0000
#define	RKIO_FIREWALL_CFG_PHYS		0xFF7D0000

#define	RKIO_CA53_DBG_PHYS		0xFF800000
#define	RKIO_GIC400_PHYS		0xFF810000

/* define for gic, from RKIO_GIC400_PHYS */
#define RKIO_GICC_PHYS			0xFF812000 /* GIC CPU */
#define RKIO_GICD_PHYS			0xFF811000 /* GIC DIST */

/* define for getting chip version */
#define RKIO_ROM_CHIP_VER_ADDR		(RKIO_ROM_PHYS + 0x4FF0)
#define RKIO_ROM_CHIP_VER_SIZE		16

/* define for pwm configuration */
#define RKIO_PWM0_PHYS                  (RKIO_PWM_PHYS + 0x00)
#define RKIO_PWM1_PHYS                  (RKIO_PWM_PHYS + 0x10)
#define RKIO_PWM2_PHYS                  (RKIO_PWM_PHYS + 0x20)
#define RKIO_PWM3_PHYS                  (RKIO_PWM_PHYS + 0x30)

#endif /* __RK322XH_IO_H */
